﻿using MongoDB.Bson.Serialization.Attributes;
using Sustainalytics.Entities;
using System;
using System.Collections.Generic;

namespace Sustainalytics.ESG.Entities
{
    [BsonIgnoreExtraElements]
    public class RPCompanyESGComputationResult : IEntity, IHasUniverseIds
    {
        public RPCompanyESGComputationResult()
        {
            Indicators = new RPIndicatorPerformance[0];
            OverallPerformance = new RPPerformance();
            RelativePosition = new RPRelativePosition();
        }

        public Guid Id { get; set; }

        public Guid SetId { get; set; }

        public bool IsInReferenceUniverse { get; set; }
        public List<int> UniverseIds { get; set; }

        public RPRelativePosition RelativePosition { get; set; }

        public RPPerformance OverallPerformance { get; set; }
        public RPPerformance EnvironmentPerformance { get; set; }
        public RPPerformance SocialPerformance { get; set; }
        public RPPerformance GovernancePerformance { get; set; }

        public RPPerformance PreparednessScore { get; set; }
        public RPPerformance DisclosureScore { get; set; }
        public RPPerformance QualitativePerformanceScore { get; set; }
        public RPPerformance QuantitativePerformanceScore { get; set; }

        public RPIndicatorPerformance[] Indicators { get; set; }

        public double? Indent { get; set; }
    }
}
